package cn.stylefeng.guns.modular.deviceLedgerManagement.deviceLedger.pojo.request;

import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

/**
 * 设备台账封装类
 *
 * @author PANL
 * @since 2023/12/04 09:18
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class EquipmentRequest extends BaseRequest {

    /**
     * 设备CODE
     */
    @NotNull(message = "设备CODE不能为空", groups = {edit.class, delete.class})
    @ChineseDescription("设备CODE")
    private String eqpCode;

    /**
     * 所属组织编码（工厂-车间-产线）
     */
    @NotNull(message = "所属组织编码（工厂-车间-产线）不能为空", groups = {add.class, edit.class})
    @ChineseDescription("所属组织编码（工厂-车间-产线）")
    private BigDecimal orgCode;

    /**
     * 设备名称
     */
    @JsonProperty(value = "eqpname")
    @ChineseDescription("设备名称")
    private String EQPNAME;

    /**
     * 设备描述（简称）
     */
    @JsonProperty(value = "eqpDesc")
    @ChineseDescription("设备描述（简称）")
    private String eqpDesc;

    /**
     * 设备品牌
     */
    @JsonProperty(value = "model")
    @ChineseDescription("设备品牌")
    private String MODEL;

    /**
     * 设备型号
     */
    @JsonProperty(value = "type")
    @ChineseDescription("设备型号")
    private String TYPE;

    /**
     * 设备类型
     */
    @NotBlank(message = "设备类型不能为空", groups = {add.class, edit.class})
    @ChineseDescription("设备类型")
    private String eqpClassCode;

    /**
     * 厂商名称
     */
    @JsonProperty(value = "eqpCompany")
    @ChineseDescription("厂商名称")
    private String eqpCompany;

    /**
     * 联系人
     */
    @JsonProperty(value = "contact")
    @ChineseDescription("联系人")
    private String CONTACT;

    /**
     * 电话
     */
    @JsonProperty(value = "telphone")
    @ChineseDescription("电话")
    private String TELPHONE;

    /**
     * 设备状态
     */
    @JsonProperty(value = "eqpStatus")
    @ChineseDescription("设备状态")
    private String eqpStatus;

    /**
     * 数控系统
     */
    @JsonProperty(value = "cncsystem")
    @ChineseDescription("数控系统")
    private String CNCSYSTEM;

    /**
     * 购买日期
     */
    @ChineseDescription("购买日期")
    private String BUYDATE;

    /**
     * 客户现场设备编码
     */
    @JsonProperty(value = "eqpNum")
    @ChineseDescription("客户现场设备编码")
    private String eqpNum;

    /**
     * 工位CODE(B_STATION表主键)
     */
    @ChineseDescription("工位CODE(B_STATION表主键)")
    private String stationCode;


    /**
     * 批量删除用的id集合
     */
    @NotNull(message = "批量删除id集合不能为空", groups = batchDelete.class)
    @ChineseDescription("批量删除用的id集合")
    private List<String> batchDeleteIdList;

}
